44. Mybatis4 - PageHelper, SSM

PageHelper

PageHelper 是 MyBatis 中非常方便的第三方分页插件,官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md

  1. 导包

导入相关包pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar

1
2
jsqlparser-0.9.5.jar
pagehelper-5.0.0.jar
  1. Mybatis 全局文件中配置分页插件
1
2
3
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>

使用 PageHelpe r提供的方法进行分页,获取 PageInfo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package com.atguigu.test;

import static org.junit.Assert.*;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.atguigu.bean.Emp;
import com.atguigu.mapper.EmpMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

public class Testpage {

@Test
public void testPage() throws IOException {
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession openSession = sqlSessionFactory.openSession(true);
EmpMapper mapper = openSession.getMapper(EmpMapper.class);


PageHelper.startPage(2, 2);

// 查询所有数据
List<Emp> allEmp = mapper.getAllEmp();

// 获取分页信息
PageInfo<Emp> pageInfo = new PageInfo<>(allEmp);

System.out.println("pageInfo:" + pageInfo);
for (Emp emp : allEmp) {
System.out.println(emp);
}
}

public SqlSessionFactory getSqlSessionFactory() throws IOException {
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-conf.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
return sqlSessionFactory;
}
}

使用效果如下:

SSM 整合

代码地址

整合步骤:

  1. 导入 jar 包

    spring:

    springMVC:

    mybatis:

    其他 jar 包:log4j, pageHelper, AspectJ, Jackson, jstl

  1. 搭建 SpringMVC

    2.1 web.xml:

    ​ DispatchServlet

    ​ HiddenHttpMethodFilter

    ​ CharacterEncodingFilter

    2.2 springMVC.xml:

    ​ 扫描控制层组件

    ​ 配置视图解析器

    ​ Default Servlet

    ​ MVC 驱动

    ​ MultipartResover(可选)

    ​ 拦截器(可选)

    ​ 自定义异常处理(可选)

  2. 搭建 Spring,整合 SpringMVC 和 Spring

    3.1 web.xml:

    ​ ContextLoaderListener

    ​ context-param 指定配置文件

    3.2 spring.xml:

    ​ 扫描非控制层组件

  3. 搭建 Mybatis

    4.1 核心配置文件

    4.2 mapper 接口和 mapper 映射文件

  4. Spring 整合 Mybatis

    5.1 spring.xml:

    ​ properties 文件的引入

    ​ DataSource 数据源的配置

    ​ 事务管理器

    ​ 开启事务驱动

    ​ SqlSessionFactoryBean 管理 SqlSession

    ​ MapperScannerConfigurer